dat.path <- "https://lms.gacco.org/asset-v1:gacco+ga063+2016_04+type@asset+block/dummydata_A.csv"
dat <- read.csv(file(dat.path, encoding = "Shift-JIS"))
head(dat)
## ID X3大都市圏か否か 世帯人員 就業人員 住居の所有関係 就業.非就業の別
## 1 A1 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 2 A2 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 3 A3 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 4 A4 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 5 A5 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 6 A6 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 年齢階級.5歳階級. 年齢階級.65歳未満か否か. 集計用乗率 年間収入.円.
## 1 1_30歳未満 1_65歳未満 538.5333 4,216,755
## 2 1_30歳未満 1_65歳未満 538.5333 4,362,659
## 3 1_30歳未満 1_65歳未満 538.5333 4,601,661
## 4 1_30歳未満 1_65歳未満 538.5333 4,737,544
## 5 1_30歳未満 1_65歳未満 538.5333 4,491,853
## 6 1_30歳未満 1_65歳未満 538.5333 4,628,420
## 消費支出額.合計. 食費 住居費 光熱.水道費 家具.家事用品費
## 1 541,403 55,410 897 13,965 8,725
## 2 122,635 25,878 1,153 12,253 2,425
## 3 387,940 29,352 924 13,822 2,060
## 4 164,740 27,001 1,413 12,142 4,130
## 5 198,961 37,167 1,190 10,702 12,547
## 6 139,568 37,234 686 12,447 4,460
## 被服及び履物費 保健医療費 交通.通信費 教育費 教養娯楽費 その他の消費支出
## 1 6,693 2,061 15,578 0 21,878 416,193
## 2 16,491 8,031 28,731 0 16,019 11,649
## 3 9,120 5,648 23,313 0 22,067 281,630
## 4 5,578 3,434 29,252 0 17,897 63,890
## 5 7,708 11,680 13,447 0 4,611 99,905
## 6 3,662 3,243 22,205 0 49,172 6,455
head(dat[c("食費","年間収入.円.")])
## 食費 年間収入.円.
## 1 55,410 4,216,755
## 2 25,878 4,362,659
## 3 29,352 4,601,661
## 4 27,001 4,737,544
## 5 37,167 4,491,853
## 6 37,234 4,628,420
colnames(dat[,c(10:ncol(dat))])
## [1] "年間収入.円." "消費支出額.合計." "食費"
## [4] "住居費" "光熱.水道費" "家具.家事用品費"
## [7] "被服及び履物費" "保健医療費" "交通.通信費"
## [10] "教育費" "教養娯楽費" "その他の消費支出"
dat2 <- apply(dat[,c(10:ncol(dat))], 1:2, function(x){return (as.integer(gsub(",","",x)))})
head(dat2, 3)
## 年間収入.円. 消費支出額.合計. 食費 住居費 光熱.水道費
## [1,] 4216755 541403 55410 897 13965
## [2,] 4362659 122635 25878 1153 12253
## [3,] 4601661 387940 29352 924 13822
## 家具.家事用品費 被服及び履物費 保健医療費 交通.通信費 教育費
## [1,] 8725 6693 2061 15578 0
## [2,] 2425 16491 8031 28731 0
## [3,] 2060 9120 5648 23313 0
## 教養娯楽費 その他の消費支出
## [1,] 21878 416193
## [2,] 16019 11649
## [3,] 22067 281630
head(dat[,c(1:9)])
## ID X3大都市圏か否か 世帯人員 就業人員 住居の所有関係 就業.非就業の別
## 1 A1 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 2 A2 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 3 A3 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 4 A4 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 5 A5 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 6 A6 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 年齢階級.5歳階級. 年齢階級.65歳未満か否か. 集計用乗率
## 1 1_30歳未満 1_65歳未満 538.5333
## 2 1_30歳未満 1_65歳未満 538.5333
## 3 1_30歳未満 1_65歳未満 538.5333
## 4 1_30歳未満 1_65歳未満 538.5333
## 5 1_30歳未満 1_65歳未満 538.5333
## 6 1_30歳未満 1_65歳未満 538.5333
dat2 <- cbind(dat[,c(1:9)], dat2)
head(dat2, 3)
## ID X3大都市圏か否か 世帯人員 就業人員 住居の所有関係 就業.非就業の別
## 1 A1 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 2 A2 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 3 A3 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 年齢階級.5歳階級. 年齢階級.65歳未満か否か. 集計用乗率 年間収入.円.
## 1 1_30歳未満 1_65歳未満 538.5333 4216755
## 2 1_30歳未満 1_65歳未満 538.5333 4362659
## 3 1_30歳未満 1_65歳未満 538.5333 4601661
## 消費支出額.合計. 食費 住居費 光熱.水道費 家具.家事用品費 被服及び履物費
## 1 541403 55410 897 13965 8725 6693
## 2 122635 25878 1153 12253 2425 16491
## 3 387940 29352 924 13822 2060 9120
## 保健医療費 交通.通信費 教育費 教養娯楽費 その他の消費支出
## 1 2061 15578 0 21878 416193
## 2 8031 28731 0 16019 11649
## 3 5648 23313 0 22067 281630
summary(dat2)
## ID X3大都市圏か否か 世帯人員 就業人員
## A1 : 1 0_3大都市圏以外:6018 2_2人 :4077 1_1人以下:5415
## A10 : 1 1_3大都市圏 :3982 3_3人以上:5923 2_2人以上:4585
## A100 : 1
## A1000 : 1
## A10000 : 1
## A1001 : 1
## (Other):9994
## 住居の所有関係 就業.非就業の別 年齢階級.5歳階級.
## 1_持ち家 :7821 1_就業 :7349 9_65歳以上:2952
## 2_借家・借間:2179 2_非就業:2651 7_55〜59歳:1122
## 6_50〜54歳:1023
## 5_45〜49歳: 951
## 4_40〜44歳: 927
## 8_60〜64歳: 894
## (Other) :2131
## 年齢階級.65歳未満か否か. 集計用乗率 年間収入.円.
## 1_65歳未満:7048 Min. : 510.1 Min. : 1987335
## 2_65歳以上:2952 1st Qu.: 568.0 1st Qu.: 4365962
## Median : 599.8 Median : 5993425
## Mean : 694.8 Mean : 6213681
## 3rd Qu.: 811.6 3rd Qu.: 7942727
## Max. :1365.9 Max. :12251614
##
## 消費支出額.合計. 食費 住居費 光熱.水道費
## Min. : 70370 Min. : 9094 Min. : 1.0 Min. : 3893
## 1st Qu.: 199213 1st Qu.: 43994 1st Qu.: 725.8 1st Qu.:12671
## Median : 259628 Median : 57522 Median : 3464.0 Median :16236
## Mean : 291878 Mean : 65594 Mean : 17487.3 Mean :18488
## 3rd Qu.: 342923 3rd Qu.: 84098 3rd Qu.: 22085.0 3rd Qu.:23161
## Max. :2523213 Max. :226852 Max. :1040029.0 Max. :75631
##
## 家具.家事用品費 被服及び履物費 保健医療費 交通.通信費
## Min. : 75 Min. : 77 Min. : 101 Min. : 126
## 1st Qu.: 2839 1st Qu.: 3763 1st Qu.: 3787 1st Qu.: 10338
## Median : 5595 Median : 7468 Median : 7618 Median : 23272
## Mean : 9214 Mean : 11873 Mean : 13239 Mean : 44037
## 3rd Qu.: 11081 3rd Qu.: 14547 3rd Qu.: 15444 3rd Qu.: 49090
## Max. :252301 Max. :306524 Max. :450453 Max. :1359528
##
## 教育費 教養娯楽費 その他の消費支出
## Min. : 0 Min. : 362 Min. : 631
## 1st Qu.: 0 1st Qu.: 11768 1st Qu.: 24284
## Median : 1600 Median : 20969 Median : 43228
## Mean : 14293 Mean : 30329 Mean : 67319
## 3rd Qu.: 12451 3rd Qu.: 37538 3rd Qu.: 78361
## Max. :2142757 Max. :867614 Max. :1551469
##
res.lm <- lm(食費~ 年間収入.円., data = dat2)
summary(res.lm)
##
## Call:
## lm(formula = 食費 ~ 年間収入.円., data = dat2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -75085 -14203 -1759 10536 135115
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.009e+04 7.260e+02 13.89 <2e-16 ***
## 年間収入.円. 8.933e-03 1.109e-04 80.52 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 22750 on 9998 degrees of freedom
## Multiple R-squared: 0.3934, Adjusted R-squared: 0.3933
## F-statistic: 6483 on 1 and 9998 DF, p-value: < 2.2e-16
# ```{r results = 'asis', comment = NA} にしておいて
library(rCharts)
n1 <- rPlot(食費 ~ 年間収入.円., data = dat2, type="point")
n1$print(include_assets=TRUE)
# うまくグラフが出ない
# 名前を変えてみる
colnames(dat2)[grep("年間収入",colnames(dat2))] <- "年間収入円"
n1 <- rPlot(食費 ~ 年間収入円, data = dat2, type="point")
n1$print(include_assets=TRUE)
# でた。ドットがダメらしい
# 線形回帰の線を重ねてみる
#range年間収入円 <- c(min(dat2$年間収入円) : max(dat2$年間収入円))
range年間収入円 <- dat2$年間収入円
predict食費 <- res.lm$coefficients[["(Intercept)"]] + res.lm$coefficients[["年間収入.円."]] * range年間収入円
dat.lm <- data.frame(predict食費, 年間収入円 = range年間収入円)
nrow(dat.lm)
[1] 10000
head(dat.lm)
predict食費 年間収入円 1 47755.38 4216755 2 49058.76 4362659 3 51193.80 4601661 4 52407.66 4737544 5 50212.87 4491853 6 51432.84 4628420
# 試しプロット
#rPlot(predict食費 ~ 年間収入円, data = dat.lm, type="line")
# 重ねてプロット
n1 <- rPlot(食費 ~ 年間収入円, data = dat2, type="point")
n1$layer(predict食費 ~ 年間収入円, data = dat.lm, type="line")
n1$print(include_assets=TRUE)
#n1$show("inline", include_assets = FALSE)
# テストの答え
# これもプロットしてみるか
ans食費 <- res.lm$coefficients[["(Intercept)"]] + res.lm$coefficients[["年間収入.円."]] * 6000000
dat.ans <- data.frame(食費=ans食費, 年間収入円=6000000, 種類="答え", サイズ=10)
range年間収入円 <- dat2$年間収入円
predict食費 <- res.lm$coefficients[["(Intercept)"]] + res.lm$coefficients[["年間収入.円."]] * range年間収入円
dat.lm <- data.frame(食費=predict食費, 年間収入円 = range年間収入円, 種類="予測", サイズ=1)
dat.3 <- data.frame(食費=dat2$食費, 年間収入円=dat2$年間収入円, 種類="実績", サイズ=1)
# 重ねてプロット
n1 <- rPlot(食費 ~ 年間収入円, data = dat.3, type="point", color="種類", size="サイズ")
n1$layer(predict食費 ~ 年間収入円, data = dat.lm, type="line", color="種類")
n1$layer(ans食費 ~ 年間収入円, data = dat.ans, type="point", color="種類", size="サイズ")
n1$print(include_assets=TRUE)